Verifying liquidity of recursive Bitcoin contracts
نویسندگان
چکیده
Smart contracts - computer protocols that regulate the exchange of crypto-assets in trustless environments have become popular with spread blockchain technologies. A landmark security property smart is liquidity: a non-liquid contract, it may happen some assets remain frozen, i.e. not redeemable by anyone. The relevance this issue witnessed recent liquidity attacks to Ethereum, which frozen hundreds USD millions. We address problem verifying on BitML, DSL for secure compiler Bitcoin, featuring primitives currency transfers, contract renegotiation and consensual recursion. Our main result verification technique liquidity. first transform infinite-state semantics BitML into finite-state one, focusses behaviour chosen set contracts, abstracting from moves context. With respect abstraction sound, if abstracted liquid, then also concrete one such. verify model-checking abstraction. implement toolchain automatically verifies compiles them we assess through benchmark representative contracts.
منابع مشابه
On Verifying Resource Contracts using Code Contracts
In this paper we present an approach to check resource consumption contracts using an off-theshelf static analyzer. We propose a set of annotations to support resource usage specifications, in particular, dynamic memory consumption constraints. Since dynamic memory may be recycled by a memory manager, the consumption of this resource is not monotone. The specification language can express both ...
متن کاملModeling Bitcoin Contracts by Timed Automata
Bitcoin is a peer-to-peer cryptographic currency system. Since its introduction in 2008, Bitcoin has gained noticeable popularity, mostly due to its following properties: (1) the transaction fees are very low, and (2) it is not controlled by any central authority, which in particular means that nobody can “print” the money to generate inflation. Moreover, the transaction syntax allows to create...
متن کاملBitML: a calculus for Bitcoin smart contracts
We propose a domain-specific language for smart contracts, which allows participants to transfer cryptocurrency according to agreed contract terms. We define a symbolic and a computational model for reasoning about their security. In the symbolic model, participants act according to the semantics of the domain-specific language. Instead, in the computational model they exchange bitstrings, and ...
متن کاملSmart Contracts Make Bitcoin Mining Pools Vulnerable
Despite their incentive structure flaws, mining pools account for more than 95% of Bitcoin’s computation power. This paper introduces an attack against mining pools in which a malicious party pays pool members to withhold their solutions from their pool operator. We show that an adversary with a tiny amount of computing power and capital can execute this attack. Smart contracts enforce the mali...
متن کاملPoster: Modelling Bitcoin Contracts by Timed Automata
Bitcoin is a digital currency system introduced in 2008 by an anonymous developer using a pseudonym “Satoshi Nakamoto” [15]. Despite its mysterious origins, Bitcoin became the first cryptographic currency that got widely adopted — as of January 2014 the Bitcoin capitalization is over $ 10 bln. The enormous success of Bitcoin was also widely covered by the media (see e.g. [12], [3], [13], [14]) ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Logical Methods in Computer Science
سال: 2022
ISSN: ['1860-5974']
DOI: https://doi.org/10.46298/lmcs-18(1:22)2022